package com.expert.miniapp.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * AISummaryConfigProperties - 需求摘要AI API配置属性（Dify格式）
 *
 * 从application.yml读取ai.summary配置
 * 用于生成需求摘要功能，在提交需求时自动调用
 * 使用非流式输出（blocking模式）
 *
 * @author System
 * @since 2025-11-11
 * @updated 2025-11-14 迁移到Dify API格式
 */
@Data
@Component
@ConfigurationProperties(prefix = "ai.summary")
public class AISummaryConfigProperties {

    /**
     * Dify API端点URL
     * 需求摘要AI: https://muwgzvxndkdvk6o1.ai-plugin.io/v1/chat-messages
     */
    private String url;

    /**
     * Dify API认证密钥
     * app-cMDh1yiMGDwEti2n0qEQRPNZ
     */
    private String key;

    /**
     * 响应模式
     * Dify支持: blocking（非流式）或streaming（流式）
     * 默认: blocking
     */
    private String responseMode = "blocking";

    /**
     * 使用的AI模型
     * 默认: gpt-4o-mini
     */
    private String model = "gpt-4o-mini";

    /**
     * 请求超时时间(毫秒)
     * 默认: 30000 (30秒)
     */
    private Integer timeout = 30000;

    /**
     * 最大重试次数
     * 默认: 3 - 使用指数退避策略
     */
    private Integer maxRetries = 3;

    /**
     * 初始重试间隔时间(毫秒)
     * 默认: 1000 (1秒) - 实际重试时间: 1s, 2s, 4s
     */
    private Integer retryDelay = 1000;
}
